package cn.com.yusys.yusp.admin.service;

import java.util.List;
import java.util.Map;

import cn.com.yusys.yusp.commons.dto.Contr;
import cn.com.yusys.yusp.commons.dto.DataContr;
import cn.com.yusys.yusp.commons.dto.MenuContr;
import cn.com.yusys.yusp.commons.dto.User;

/**
 * 用户信息获取客户端.
 * 
 *
 * @author tangxb
 */
public interface UserProviderService {
	

    public List<Contr> getAllContrUrl();

    public String getUserCode();

    public User getUserInfo(String loginCode, String sysId);

    public MenuContr getMenuandContr(String loginCode, String sysId,String roleId);

	public List<DataContr> getDataAuth(String loginCode, String sysId);

    public void cleanAllContrUrlCache();

    public void cleanUserInfoCache();

    public void cleanMenuAndContrCache();

    public void cleanDataContrCache();

    /**
     * 通过机构查询该机构下所有用户
     * 
     * @param orgId
     * @return
     */
    public List<String> queryUserByOrgId( String orgId);

    /**
     * 通过机构id查询所属机构下用户信息
     * 
     * @param orgIds
     * @return
     */
    public List<String> queryUserByOrgIds(List<String> orgIds);

    /**
     * 通过角色id查询属于该角色的所有用户
     * 
     * @param roleId
     * @return
     */
    public List<String> queryUserByRoleId( String roleId);

    /**
     * 通过部门id查询属于该部门下所有的用户信息
     * 
     * @param dutyId
     * @return
     */
    public List<String> queryUserByDutyId( String dutyId);

    /**
     * 通过用户id查询该用户所属机构id
     * 
     * @param userId
     * @return
     */
    public List<String> queryOrgsByUserId(String userId);

    /**
     * 通过上级机构id查询所有的上级机构id属于该上级机构id
     * 
     * @param upOrgId
     * @return
     */
    public List<String> queryOrgsByUpOrgId( String upOrgId);

    /**
     * 根据机构id查询该机构的上级机构
     * 
     * @param orgId
     * @return
     */
    public List<String> queryUpOrgByOrgId( String orgId);

    /**
     * 根据用户id查询用户信息
     * 
     * @param userId
     * @return
     */
    public Map<String, Object> queryUserInfoByUserId( String userId);

}